Skip to content

chore(pstack): sync upstream pstack (cursor/plugins#628..#634) - #19

Merged
lucasheriques merged 6 commits into
mainfrom
sync/upstream-2026-10-16
Oct 16, 2026
Merged

lucasheriques merged 6 commits into
mainfrom
sync/upstream-2026-10-16

Conversation

@lucasheriques

Copy link
Copy Markdown
Owner

Merges upstream@f713f14 (cursor/plugins pstack@f713f14203cd) into the port.

Merge this with gh pr merge --merge. Do not squash or rebase. #18 was squash-merged, which dropped upstream@b5fd060 from main's ancestry. This branch puts it back with a no-content git merge -s ours b5fd060 commit. Squashing this PR would drop it again, and the next sync would re-conflict on lines already resolved.

Upstream changes

  • #628: /ketchup explains changes with embedded screenshots and videos, and draws diagrams only where a picture beats words. Action items are now plain bullets.
  • #633: rewrites four principles (attack-the-premise, fix-root-causes, make-operations-idempotent, test-behavior-not-implementation) as reasoning instead of rules. Also updates their summaries in poteto-mode and /correct step 3.
  • #634: cuts marginal sections from interrogate's lead-judgment, swarm, type-system-discipline, and migrate-callers.

Conflicts

  • README.md: kept the port's own README.
  • docs/guide/08-principles.md: stays deleted.
  • ketchup: "/visualize chart" is translated to "a chart from the visual tool".
  • attack-the-premise: links rewritten to ./principle-x.md.
  • type-system-discipline: kept the port's principle-x naming.
  • swarm: took upstream's cuts and kept the port's step 4. Numbering stays 1, 2, 4, 5 to match upstream.

Pre-PR gate (interrogate, opus + sonnet)

  • Both reviewers confirmed parity: every upstream hunk landed, no Cursor-isms leaked, and the -s ours commit changes no tree content.
  • Fixed: the commit message credited #614, a version bump outside this range, and called an old swarm sentence new.
  • Left as-is to keep parity, and worth raising upstream:
    • migrate-callers is down to one orphan bullet.
    • type-system's description promises bullets that were cut.
    • swarm still mentions "N" and "the table" after the lines defining them were cut.
    • ketchup says "embed screenshots inline" without a terminal fallback (sonnet).

Tested

  • bun scripts/check-port.ts: 0 findings
  • bun test ./scripts/check-port.test.ts: 82 pass
  • bun test orch watch-pr: 61 pass on 14 of 15 runs. The first run reported 1 error that hasn't reproduced since. No script changes here.
  • claude plugin validate .: passed, with the expected root CLAUDE.md warning
  • Not run: the three claude -p --plugin-dir . smoke checks, because the nested CLI hit its usage limit.

Merges upstream@f713f14 (cursor/plugins pstack@f713f14203cd). Also records
upstream@b5fd060 as a parent via `git merge -s ours`, because #18 was
squash-merged and dropped it from main's ancestry.

Upstream commits merged:
- #628 /ketchup explains changes with embedded screenshots, videos, diagrams
- #633 restate attack-the-premise, fix-root-causes, make-operations-idempotent,
  test-behavior-not-implementation as reasoning; sync summaries and /correct
- #634 cut marginal sections from interrogate lead-judgment, swarm,
  type-system-discipline, migrate-callers-then-delete-legacy-apis

Conflicts:
- README.md: kept the port's README (upstream's principles table, "not
  shipped here", automations sections are Cursor-only).
- docs/guide/08-principles.md: stays deleted; its edits mirror the principle
  summaries already merged into poteto-mode/SKILL.md.
- ketchup: took upstream; "`/visualize` chart" stays "a chart from the visual tool".
- attack-the-premise: took upstream; links rewritten to ./principle-x.md.
- type-system-discipline: took upstream's cut; kept the port's
  **principle-x** naming.

Inherited from upstream, left as-is to stay in parity (worth raising upstream):
migrate-callers body is now one orphan bullet; type-system description still
promises "illegal states" and "exhaust variants" whose bullets were cut; swarm
still says "N workers" and "the table" after their antecedents were cut.
- swarm: took upstream's cut of the intro line and step 3; kept the port's
  step 4 unchanged (upstream did not edit it). Step numbering follows
  upstream (2, 4, 5) so the next sync merges cleanly.

Tested:
- bun scripts/check-port.ts: 0 findings
- bun test ./scripts/check-port.test.ts: 82 pass
- bun test orch watch-pr: 61 pass on 14 of 15 runs; first run reported 53
  tests and 1 error, not reproduced since. No script changes in this diff.
- claude plugin validate .: passed (expected root CLAUDE.md warning)
- claude -p smoke checks: NOT run, nested CLI hit its usage limit.

Merge with `gh pr merge --merge`, never squash or rebase: a squash drops
`upstream` from main's ancestry and the next sync re-conflicts.
@lucasheriques
lucasheriques merged commit 9643651 into main Oct 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant